package com.carsys.service.Impl;

import com.carsys.entity.SUser;
import com.carsys.mapper.SUserMapper;
import com.carsys.service.SUserService;
import com.carsys.utils.MailUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class SUserServiceImpl implements SUserService {
    @Autowired(required = false)
    private SUserMapper sUserMapper;


    /**
     *  根据电话 密码查找用户
     * @param tel
     * @param password
     * @return  SUser
     */
    @Override
    public SUser findSUserByTelAndPassword(String tel, String password) {
        return sUserMapper.findSUserByTelAndPassword(tel,password);
    }


    /**
     *  添加用户
     * @param user
     * @return  如果为0表示 添加失败,为1 表示添加成功
     */
    @Override
    public boolean insertSUser(SUser user) {
        return sUserMapper.insertSUser(user)>0;
    }


    /**
     *  忘记密码
     * @param tel
     * @param email
     * @return
     */
    @Override
    public boolean findSUserByTelAndEmail(String tel, String email) {
        SUser user = sUserMapper.findSUserByTelAndEmail(tel,email);

        if(user!=null){
            String title = "密码找回";
            String context = "<h3>账号为"+user.getTel()+"的用户,您的密码为"+user.getPassword()+"</h3>";
            MailUtils.sendMail(user.getEmail(),context,title);
            return true;
        }
        return false;
    }

    /**
     *  查找密码
     * @param tel
     * @param email
     * @return
     */
    @Override
    public String getSUserByTelAndEmail(String tel, String email) {
        SUser user = sUserMapper.findSUserByTelAndEmail(tel,email);
        String password = user.getPassword();
        return password;
    }

    /**
     *  查找所有的用户列表
     * @return 返回用户集合(不包括管理员)
     */
    @Override
    public List<SUser> findAllUser(int identity) {

        return sUserMapper.findAllUser(identity);
    }

    /**
     *  根据id查找用户
     * @return 用户
     */
    @Override
    public SUser findSUserOne(SUser sUser) {
        return sUserMapper.findOne(sUser);
    }

    /**
     *  修改用户
     * @param sUser
     * @return
     */
    @Override
    public boolean updateUser(SUser sUser) {
        return sUserMapper.updateUser(sUser)>0;
    }

    /**
     * 修改用户权限
     * @param id
     * @param identity
     * @return
     */
    @Override
    public boolean updateIdentityById(int id, int identity) {
        return sUserMapper.updateIdentityById(id,identity)>0;
    }



    /**
     *  根据id 删除用户
     * @param id
     * @return
     */
    @Override
    public boolean deleteUserById(int id) {
        return sUserMapper.deleteUserById(id)>0;
    }

    /**
     * 通过用户id修改用户密码
     * @param id 用户id
     * @param password 修改后的密码
     * @return 布尔类型表示是否成功
     */
    @Override
    public boolean updateSUserPasswordById(int id, String password) {
        return sUserMapper.updateSUserPasswordById(id,password)>0;
    }

    /**
     * 通过id查询用户
     * @param id 用户id
     * @return 用户实体
     */
    @Override
    public SUser findSUserById(int id) {
        SUser sUser = sUserMapper.findSUserById(id);
        return sUser;
    }

    /**
     * 通过用户id修改用户电话
     * @param id 用户id
     * @param tel 修改后的电话
     * @return 布尔类型表示是否成功
     */
    @Override
    public boolean updateSUserTelById(int id, String tel) {
        return sUserMapper.updateSUserTelById(id,tel)>0;
    }

    /**
     * 通过用户id修改用户邮箱
     * @param id 用户id
     * @param email 修改后的邮箱
     * @return 布尔类型表示是否成功
     */
    @Override
    public boolean updateSUserEmailById(int id, String email) {
        return sUserMapper.updateSUserEmailById(id,email)>0;
    }




}
